<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			window.onload = function(){
				
				/*
				 * 创建正则表达式对象
				 * 
				 * 语法: 
				 * 	var 变量 = new RegExp("正则表达式","匹配模式");
				 *  使用typeof 检查正则对象, 会返回object
				 * 	这个正则表达式是检查一个字符串中是否含有a
				 * 在构造函数中可以传递一个匹配模式作为第二个参数
				 * 	可以是
				 * 		i 忽略大小写
				 * 		g 匹配全局模式
				 */
				var reg = new RegExp("a");
				var str = "a";
				
				/*
				 * 正则表达式的方法
				 * 	test()
				 * 	 -	使用这个方法可以检查一个字符串是否符合正则表达式的规则
				 */
				var result = reg.test(str);
				console.log(result); // true
				
				
				/*
				 * 使用字面量创建正则表达式
				 * 	语法: var 变量 = /正则表达式/匹配模式
				 */
				var reg2 = /a/i;
				console.log(typeof reg2); // object
				console.log(reg2.test("abc"));  //true
				
				
				// 创建一个表达式, 检查一个字符串中是否有a或b
				var reg3 = /a|b/;
				console.log(reg3.test("cad"));
				
				
				/*
				 * 任意的大小写字母
				 * 	[]中括号里面的内容是或关系
				 */
				var reg4 = /[A-Z]/i;
				console.log(reg4.test("Abc"));
				
				// abc adc aec
				var reg5 = /a[bde]c/i;
				console.log(reg5.test("abc"));
				
				
				/*
				 * [^ ] 除了
				 */
				var reg6 = /[^ab]/;
				console.log(reg6.test("abc"));
				
				/*
				 * [0-9] 任意的数字
				 */
				var reg7 = /[^0-9]/;
				console.log(reg7.test("1")); // flase
				console.log("\n");
				
				/*
				 * 用正则表达式拆分字符串
				 * 默认全局拆分
				 */
				str = "a12,bc4C5,af4[";
				console.log(str.split(/[A-z]/));
				
				/*
				 * search()
				 * 只会查找第一个
				 */
				str = "ge lin hao tai";
				console.log(str.search(/a/));
				console.log(str.search(/m/));
				
				/*
				 * match()
				 */
				str = "ge, 1lin (hao) []tai t";
				console.log(str.match(/([A-z])+/g));
				
				
				/*
				 * replace()
				 * 默认只会替换第一个
				 */
				str = "ge, 1lin (hao) []tai t";
				console.log(str.replace(/[a-z]/ig, ""));
				console.log("\n");
				
				
				/*
				 * 量词
				 */
				str = "aaaab";
				var reg8 = /a{3}/;
				console.log(reg8.test(str));
				
				// ab出现两次
				str = "ababaab";
				var reg9 = /(ab){2}/;
				console.log(reg9.test(str));
				
				// ab出现3到五次
				str = "ababaab";
				var reg10 = /(ab){3,5}/;
				console.log(reg10.test(str));  //false
				
				// ab出现至少3次
				str = "ababaab";
				var reg11 = /(ab){3,}/;
				console.log(reg11.test(str));  //false
				
				str = "ababaab";
				var reg12 = /(ac)*/;
				console.log(reg12.test(str));
				
				str = "abacbaab";
				var reg13 = /ba?b/;
				console.log(reg13.test(str));  // false
				
				// 以b开头
				str = "abacbaab";
				var reg14 = /^b/;
				console.log(reg14.test(str));  // false
				
				// 以b结尾
				str = "abacbaab";
				var reg15 = /b$/;
				console.log(reg15.test(str));  
				console.log("\n");  
				
				
				// 匹配 .
				str = "b.";
				var reg16 = /\./;
				console.log(reg16.test("b"));  // false
				console.log(reg16.test(str));  // true
				
				var reg17 = /\bchild\b/;
				console.log(reg17.test("hello children!")); // dalse
				console.log(reg17.test("hello child!"));  // true
				
				// 去除开头和结尾空格
				console.log("        shanxi xian       ".replace(/^\s*|\s*$/g, ""));
				
				var email = document.getElementById("email");
				email.onchange = function(){
					var reg = /^\w{3,}(\.(\w)+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/
					if(reg.test(email.value)){
						alert(true);
					}else{
						alert(false);
					}
					
				}
			}
			
		</script>
	</head>
	<body>
		请输入邮箱: 
		<input name="email" type"text" id="email"/>
	</body>
</html>
